Single Data Rate (SDR) synchronous dynamic random access memory (SDRAM) and Double Data Rate (DDR) SDRAM (including DDR, DDR2, DDR3, DDR4, . . . ) are various types or classes of memory integrated circuits that are used inside electronic devices to record and manage data being used by a data processing device. When these various types of SDRAM are used to handle image or video, such as when such images are rotated from their original orientation, there may be a precharge cycle or refresh delay between reads or writes to different rows inside the memory device. This presents a problem when trying to rotate images or video. Non-rotated video or image pixels are conventionally written as consecutive pixels in the same memory row without precharge cycles. A vertical read/write to pixels in an image may require a precharge delay between each pixel access. This makes it inefficient to use SDRAM memory to read or write video that is rotated 90 or 270 degrees.
Further, SDRAM memory controllers, such as DDR memory controllers, may have a pipeline delay from the time a command is sent to the controller until the time when read data (data being read from the memory device) is ready, or the memory device is ready to accept data during a write to the memory device. In a multi-port application, when more than one image is stored in the DDR memory, the pipeline delay causes a significant delay between access to different images, which reduces the effective memory bandwidth.
There is also a conventional two-pass method used to smoothly rotate images. This method may cause a loss of resolution in the rotated image, because the first pass of the conventional method typically shrinks the image being rotated.
Improvements to these conventional approaches to digital image data handling, especially for handling the rotation of digital images are desirable.